/* 
 * File:   horloge.h
 * Author: landry
 *
 * Created on 10 octobre 2009, 14:56
 */

#ifndef _HORLOGE_H
#define	_HORLOGE_H

#include <vector>
#include <list>
#include "evenement.h"
#include <stdio.h>
#include <iostream>
//#include "globalVariables.h"


using namespace std;


extern "C++" list<Evenements> ListeEvenements;

typedef struct HORL {
    int index;
    list<int> time_list;
}HORLOGE;


//using namespace std;

class Horloge {
public:
    Horloge();
    Horloge(const Horloge& orig);

    int getCurrentIndex(){return horloge.index;}
    int setCurrentIndex(int index){horloge.index = index;}

    Horloge(int current_time);
    void initHorloge(){
        horloge.index = 0;
        horloge.time_list.push_back(0);
    }

    void updeteHorloge();

    int getTime(){
        updeteHorloge();
         list<int>::iterator t = this->horloge.time_list.begin();
         return *t;
    }

    //cette fonction fait avance le temps 
    //Il s'agit uniquement de faire avancer l'index des temps
    void proccessTime(){
        horloge.index++;
    }



    void sortTime(){this->horloge.time_list.sort();}

    void addTime(int time){
        this->horloge.time_list.push_back(time);
        sortTime();
    }

    int getSize(){ return horloge.time_list.size();}

    virtual ~Horloge();
    
private:
    HORLOGE horloge;

};

#endif	/* _HORLOGE_H */

